package com.sc.test.socketDemo.serverClient;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @version 1.0
 * @Author: 许啸林
 * @Date: 2021/6/6 15:25
 */
public class ServerDemo {
    /**
     *  思路
     *  1. 创建serverSocket(9999)服务对象 监听本机9999端口
     *  2. 接收客户端 accept 连接, 获取客户端字节流
     *  3. 将字节流打印到控制台
     *
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        // 创建 端口为 9999 的ServerSocket对象
        ServerSocket serverSocket = new ServerSocket(9999);
        // 没有客户端连接到socket 端口时程序阻塞
        // 如果有客户端连接, 接收客户端socket对象程序继续
        System.out.println("等待客户端发送信息");
        Socket accept = serverSocket.accept();
        // 获取字节流信息打印到控制台
        InputStream inputStream = accept.getInputStream();
        byte[] readData = new byte[1024];
        int readIndex = 0;
        System.out.println("获取客户端字节流信息");
        while (((readIndex = inputStream.read(readData)) != -1)) {
            System.out.println(new String(readData, 0, readIndex));
        }

        // 关闭输入流和socket对象
        inputStream.close();
        accept.close();
        serverSocket.close();
    }
}
